package travelDream.entities;

import java.io.Serializable;

import javax.persistence.*;

import travelDream.ejb.prodotto.base.VoloDTO;

import java.sql.Time;


/**
 * The persistent class for the volo database table.
 * 
 */
@Entity
@NamedQueries({
	@NamedQuery(name="Volo.findAll", query="SELECT v FROM Volo v"),
	@NamedQuery(name = "Volo.findById", query = "SELECT v FROM Volo v WHERE v.idVolo = :id"),
	@NamedQuery(name="Volo.findByLuogo", query = "SELECT v FROM Volo v WHERE v.luogoArrivo =:luogo1 OR v.luogoPartenza =:luogo2"),
	@NamedQuery(name="Volo.findByArrivo", query = "SELECT v FROM Volo v WHERE v.luogoArrivo = :arrivo"),
	@NamedQuery(name="Volo.findByPartenza", query = "SELECT v FROM Volo v WHERE v.luogoPartenza = :partenza"),
	@NamedQuery(name="Volo.findByPartenzaEArrivo", query = "SELECT v FROM Volo v WHERE v.luogoPartenza = :partenza AND v.luogoArrivo =:arrivo")
	
})
public class Volo implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	private int idVolo;

	private short costo;

	@Lob
	private String descrizione;

	private String luogoArrivo;

	private String luogoPartenza;

	private Time orarioArrivo;

	private Time orarioPartenza;

	public Volo() {
	}
	
	public Volo(int id, String descrizione,String luogoArrivo, String luogoPartenza,Time orarioArrivo, Time orarioPartenza, short costo){
		this.idVolo = id;
		this.descrizione = descrizione;
		this.luogoArrivo = luogoArrivo;
		this.luogoPartenza = luogoPartenza;
		this.orarioArrivo = orarioArrivo;
		this.orarioPartenza = orarioPartenza;
		this.costo = costo;
	}
	
	public Volo(VoloDTO voloDTO){
		this.idVolo = voloDTO.getId();
		this.descrizione = voloDTO.getDescrizione();
		this.luogoArrivo = voloDTO.getLuogoArrivo();
		this.luogoPartenza = voloDTO.getLuogoPartenza();
		this.orarioArrivo = new Time(voloDTO.getOrarioArrivo().getTime());
		this.orarioPartenza = new Time(voloDTO.getOrarioPartenza().getTime());
		this.costo = voloDTO.getCosto();
	}

	public int getIdVolo() {
		return this.idVolo;
	}

	public void setIdVolo(int idVolo) {
		this.idVolo = idVolo;
	}

	public short getCosto() {
		return this.costo;
	}

	public void setCosto(short costo) {
		this.costo = costo;
	}

	public String getDescrizione() {
		return this.descrizione;
	}

	public void setDescrizione(String descrizione) {
		this.descrizione = descrizione;
	}

	public String getLuogoArrivo() {
		return this.luogoArrivo;
	}

	public void setLuogoArrivo(String luogoArrivo) {
		this.luogoArrivo = luogoArrivo;
	}

	public String getLuogoPartenza() {
		return this.luogoPartenza;
	}

	public void setLuogoPartenza(String luogoPartenza) {
		this.luogoPartenza = luogoPartenza;
	}

	public Time getOrarioArrivo() {
		return this.orarioArrivo;
	}

	public void setOrarioArrivo(Time orarioArrivo) {
		this.orarioArrivo = orarioArrivo;
	}

	public Time getOrarioPartenza() {
		return this.orarioPartenza;
	}

	public void setOrarioPartenza(Time orarioPartenza) {
		this.orarioPartenza = orarioPartenza;
	}

}